﻿using HDS.Model;
using HDS.Model.Entity.Master;
using HDS.Model.Entity.View;
using HDS.SupplierApi.Core.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace HDS.IService.Master
{
    public interface IOrderHotelService
    {
        Task<OrderHotelDistributor> GetDistributorOrder(string orderId);

        Task<OrderHotelDistributor> GetDistributorOrder(string distributor, string distributorOrderId);

        Task<DataPagingModel<VOrderHotel>> GetDistributorOrderList(int pageIndex, int pageSize, Expression<Func<VOrderHotel, bool>> whereExpression, string whereSql);

        Task<bool> UpdateDistributorOrderStatus(string orderId, DistributorOrderStatus distributorOrderStatus, int updatedBy, string updatedByName, string logText);

        Task<string> InsertDistributorOrder(OrderHotelDistributor entity);


        Task<OrderHotelSupplier> GetSupplierOrder(string supplier, string supplierOrderId);

        Task<List<OrderHotelSupplier>> GetSupplierOrderList(string orderId);

        Task<bool> UpdateSupplierOrderStatus(string orderId, string supplier, string supplierOrderId, OrderHotelStatus supplierOrderStatus, int updatedBy, string updatedByName, string logText);

        Task<bool> UpdateSupplierOrder(string orderId, string supplier, string supplierOrderId, OrderHotelStatus supplierOrderStatus, Money settlementPrice, int updatedBy, string updatedByName, string logText);

        Task<bool> InsertSupplierOrder(OrderHotelSupplier entity);


        Task<bool> UpdateOrderStatus(string orderId, OrderHotelStatus orderStatus);

        Task<bool> UpdateOrderStatus(string orderId, OrderHotelStatus orderStatus, int updatedBy, string updatedByName, string remark);

        Task<bool> UpdateHotelConfirmNo(string orderId, string hotelConfirmNo, int updatedBy, string updatedByName);

        Task<bool> UpdateHotelConfirmNo(string orderId, string hotelConfirmNo);
    }
}
